package com.yf.exam.modules.exam.dto;

import com.yf.base.api.annon.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
* <p>
* 考试数据传输类
* </p>
*
* @author 聪明笨狗
* @since 2020-07-25 16:18
*/
@Data
@ApiModel(value="考试", description="考试")
public class ExamDTO implements Serializable {


    private static final long serialVersionUID = 1L;


    @ApiModelProperty(value = "ID", required=true)
    private String id;

    @Dict(dicCode = "exam_type")
    @ApiModelProperty(value = "1正式,2模拟", required=true)
    private String examType;
    private String examType_dictText;

    @ApiModelProperty(value = "试卷ID", required=true)
    private String tmplId;

    @ApiModelProperty(value = "考试名称", required=true)
    private String title;

    @ApiModelProperty(value = "考试描述", required=true)
    private String content;

    @Dict(dicCode = "open_type")
    @ApiModelProperty(value = "1公开2部门3定员", required=true)
    private Integer openType;
    private String openType_dictText;

    @ApiModelProperty(value = "口令密码", required=true)
    private String password;

    @ApiModelProperty(value = "考试状态", required=true)
    private Integer state;

    @ApiModelProperty(value = "开始时间", required=true)
    private Date startTime;

    @ApiModelProperty(value = "结束时间", required=true)
    private Date endTime;

    @ApiModelProperty(value = "总分数", required=true)
    private BigDecimal totalScore;

    @ApiModelProperty(value = "总时长（分钟）", required=true)
    private Integer totalTime;

    @ApiModelProperty(value = "及格分数", required=true)
    private BigDecimal qualifyScore;

    @ApiModelProperty(value = "考试机会", required=true)
    private Integer chance;

    @ApiModelProperty(value = "允许答题设备0全部1电脑2手机", required=true)
    private Integer answerDevice;

    @ApiModelProperty(value = "摄像头开关", required=true)
    private Boolean camOn;

    @ApiModelProperty(value = "摄像头截屏评率", required=true)
    private Integer camInterval;

    @ApiModelProperty(value = "离开检测开关", required=true)
    private Boolean leaveOn;

    @ApiModelProperty(value = "离开判定秒数", required=true)
    private Integer leaveCheck;

    @ApiModelProperty(value = "允许离开总次数", required=true)
    private Integer leaveCount;

    @ApiModelProperty(value = "无动作检测开关", required=true)
    private Boolean actionOn;

    @ApiModelProperty(value = "无动作时间", required=true)
    private Integer actionInterval;

    @ApiModelProperty(value = "人脸登录开关", required=true)
    private Boolean faceOn;

    @ApiModelProperty(value = "人脸定时检测", required=true)
    private Boolean faceCheck;

    @ApiModelProperty(value = "人脸错误机会", required=true)
    private Integer faceChance;

    @ApiModelProperty(value = "考试通过积分", required=true)
    private Integer points;

    @ApiModelProperty(value = "最低交卷分钟", required=true)
    private Integer handMin;

    @ApiModelProperty(value = "允许迟到分钟", required=true)
    private Integer lateMax;

    @ApiModelProperty(value = "感谢文字", required=true)
    private String thanks;

    @ApiModelProperty(value = "结果类型,1感谢文字,2感谢文字+成绩,3试卷明细", required=true)
    private Integer resultType;

    @ApiModelProperty(value = "显示时机：1立即显示,2考试结束后显示,3阅卷后显示", required=true)
    private Integer resultOppty;

    @ApiModelProperty(value = "价格")
    private BigDecimal price;

    @ApiModelProperty(value = "是否开启水印")
    private Boolean waterMark;

    /**
     * 是否显示错题
     */
    @ApiModelProperty(value = "是否显示错题")
    private Boolean showBook;

    @ApiModelProperty(value = "部门编码")
    private String deptCode;

    @ApiModelProperty(value = "创建时间", required=true)
    private Date createTime;

    @ApiModelProperty(value = "更新时间", required=true)
    private Date updateTime;

    @ApiModelProperty(value = "创建人", required=true)
    private String createBy;

    @ApiModelProperty(value = "修改人", required=true)
    private String updateBy;

    @ApiModelProperty(value = "数据标识", required=true)
    private Integer dataFlag;

}
